<?

/*! AnoLetivo do sistema
/*!
    Esta classe representa um anoletivo no sistema.
*/
class AnoLetivo
{
   

    //! Consulta todos os anoletivos cadastrados
    /*!
        Pega todos os anoletivos cadastrados no banco.
        \return Lista de objetos
    */
    function consultarTodos()
    {
        $registros = array();
        $con = DB::connect(URL_CONEXAO);

        $resultado = $con->query("Select * from AnoLetivo");

        while ($linha = $resultado->fetchRow(DB_FETCHMODE_OBJECT)) {
            array_push($registros, $linha);
        }
        return $registros;
    }

    //! Consulta com base em criterios
    /*!
        Efetua uma consulta por ano letivos com base em alguns critérios.
        \param $anoletivo Ano letivo a ser pesquisado
        \param $etapas    Número de etapas do ano letivo
        \return Lista de objetos
    */
    function consultar($anoletivo, $etapas)
    {
        $registros = array();
        $con = DB::connect(URL_CONEXAO);
        $sql = "";

 
        if ($anoletivo != "")
            $sql .= " ano_letivo = " . $anoletivo . " and";
        if ($etapas != "")
            $sql .= " num_etapas = " . $etapas . " and";
            
        if ($sql != "")
            $sql = substr(" where " . $sql, 0, -3);

        $sql = "select * from AnoLetivo" . $sql;

        $resultado = $con->query($sql);

        while ($linha = $resultado->fetchRow(DB_FETCHMODE_OBJECT)) {
            array_push($registros, $linha);
        }
        return $registros;
    }

    //! Consulta um ano letivo especifico
    /*!
        Pega do banco o anoletivo com o login dado.
        \param $login login do anoletivo
        \return Lista de objetos
    */
    function consultarUnico($anoletivo)
    {
        $registros = array();
        $con = DB::connect(URL_CONEXAO);
        $sql = "select * from AnoLetivo where ano_letivo= " . $anoletivo . " ";

        $resultado = $con->query($sql);

        return $resultado->fetchRow(DB_FETCHMODE_OBJECT);
    }

    //! Cadastra um novo ano letivo
    /*!
        Cadastra um novo ano letivo no banco.
        \param $anoletivo Ano letivo
        \param $etapas    Numero de etapas do ano letivo
        \param $media	  Valor minimo para aprovacao
		\param $notamax   Valor maximo para a nota nas etapas
        \return Boolean
    */
    function incluir($ano_letivo, $etapas, $media, $notamax)
    {
        $con = DB::connect(URL_CONEXAO);
        $sql = "insert into AnoLetivo (ano_letivo, num_etapas, val_media, val_max_etapa) " .
            " values ('$anoletivo', '$etapas', '$media', '$notamax')";

        $flag = $con->query($sql);

        if (DB::isError($flag)) {
            return false;
        }
        return true;
    }

    //! Exclui um ano letivo do banco
    /*!
        Elimina um ano letivo do banco em definitivo
        \param $anoletivo Ano letivo
        \return Boolean
    */
    function excluir($anoletivo)
    {
        $con = DB::connect(URL_CONEXAO);
        $sql = "delete from AnoLetivo where ano_letivo = " . $anoletivo . " ";

        $flag = $con->query($sql);

        if (DB::isError($flag)) {
            return false;
        }
        return true;
    }

    //! Altera um ano letivo
    /*!
        Atualiza um ano letivo no banco com novos valores
        \param $anoletivo Ano letivo
        \param $etapas    Numero de etapas do ano letivo
        \param $media	  Valor minimo para aprovacao
		\param $notamax   Valor maximo para a nota nas etapas
        \return Boolean
    */
    function alterar($anoletivo, $etapas, $media, $notamax)
    {
        $con = DB::connect(URL_CONEXAO);
        $sql = "Update AnoLetivo set num_etapas = $etapas ,val_media = $media , val_max_etapa = " . $notamax.  " " ;

        $sql .= " where ano_letivo = " . $anoletivo. " ";
        
        $resultado = $con->query($sql);

        if (DB::isError($flag)) {
            return false;
        }
        return true;
    }

}

?>
